package com.cuixichang.minimalism.core.security.enums;

import com.cuixichang.minimalism.basal.enums.RouterRelationTypeEnum;

public enum RouterRelationTypePrefixEnum {

    Role{
        @Override
        public RouterRelationTypeEnum getRouterRelationType() {
            return RouterRelationTypeEnum.RoleType;
        }

        @Override
        public String getPrefix() {
            return "ROLE_";
        }
    },Permission{
        @Override
        public RouterRelationTypeEnum getRouterRelationType() {
            return RouterRelationTypeEnum.PermissionType;
        }

        @Override
        public String getPrefix() {
            return "PERMISSION_";
        }
    };

    public abstract RouterRelationTypeEnum getRouterRelationType();

    public abstract String getPrefix();

    public static RouterRelationTypePrefixEnum getEnumByRouterRelationType(RouterRelationTypeEnum routerRelationTypeEnum){
        RouterRelationTypePrefixEnum[] routerRelationTypePrefixEnums = RouterRelationTypePrefixEnum.values();
        for (RouterRelationTypePrefixEnum routerRelationTypePrefixEnum : routerRelationTypePrefixEnums) {
            if(routerRelationTypePrefixEnum.getRouterRelationType().equals(routerRelationTypeEnum)){
                return routerRelationTypePrefixEnum;
            }
        }
        return null;
    }
}
